package interfaces;

import objet.IHorloge;
import objet.IObjet1;
import objet.IPoint;


/**
 * Liste les méthodes qui sont utilisable coté serveur
 * 
 * Voici la procédure à suivre pour ajouter une méthode coté serveur :
 * 1 - ajouter la signature de la méthode dans cette interface
 * 2 - donner le corps des méthodes dans la classe InvokedMethodsImpl
 * 3 - ajouter la signature de la méthode permettant de faire l'appel de celle-ci par le client dans l'interface ICallableMethod
 * 4 - donner le corps de cette méthode dans la classe MethodCallImpl
 * 5 - Ajouter une branche au if de CallMethod qui permet l'appel de méthode coté serveur avec les objets générés par rapport aux methodCall
 *
 * @author Kevin Pozderec, Faycal Abka
 *
 */
public interface IInvokedMethods {	
	
	
	/**
	 * Méthode qui déplacer un point p sur les nouvelles coordonnées x et y
	 * @param p : un point
	 * @param x : nouvelle coordonnée x
	 * @param y : nouvelle coordonnée y
	 */
	void pointMove ( IPoint p , int x , int y );
	
	/**
	 * Méthode qui retourne la chaîne de caractère comprenant chacun des paramètres
	 * @param o : un objet1
	 * @param a : un entier
	 * @param b : un booléen
	 * @param c : une chaîne de caractère
	 * @param d : un double
	 * @return chaîne de caractère contenant chacun des paramètres
	 */
	String useObject1 ( IObjet1 o, int a, boolean b, String c, double d);
	
	/**
	 * Méthode qui renvoie une chaîne de caractère annonçant l'heure et la date de l'horloge h
	 * @param h : objet de type horloge
	 * @return chaîne de caractère indiquant la date et l'heure
	 */
	String pingDate ( IHorloge h );
	
}